<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* @framework : Codeigniter Framework
*
* @author: fatangel26
*
*/
	class Pages extends Admin_Controller
	{
		public function __construct()
		{
			parent::__construct();

            if(!$this->my_session->is_Admin())
            {
                redirect(base_url()."backend/auth/login");

                exit();
            }

            $this->load->model("backend/pages_model", "MPages", TRUE);
		}

        public function index()
        {
            $this->_data['title'] = 'Jewel | Danh sách các trang';

            $data['pages'] = $this->MPages->select();

            if(!$data['pages'])
            {
                $data['msg'] = 'Không có dữ liệu để hiển thị.';
            }

            $this->_data['content'] = $this->load->view("backend/pages/listpages", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function

        public function changestt()
        {
            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $this->native_session->set_flashdata('msg','Không tồn tại trang này.');
            }
            else
            {
                $page_id = $this->uri->segment(4);

                $check = $this->MPages->edit($page_id, array('pages_status' => $this->uri->segment(5)));

                if($check == FALSE)
                {
                    $this->native_session->set_flashdata('msg','Cập nhật trạng thái lỗi.');
                }
                else
                {
                    $this->native_session->set_flashdata('msg','Cập nhật trạng thái thành công.');
                }
            }//End else

            redirect(base_url()."backend/pages");
        }

        public function createpages()
        {
            $this->_data['title'] = 'Jewel | Tạo trang mới';

            /*Validate data*/
            $this->form_validation->set_rules('pages_name','Tên trang', 'trim|required|min_length[2]|xss_clean|is_unique[tbl_pages.pages_name]');
            $this->form_validation->set_rules('pages_title','Tên trang không dấu', 'trim|required|min_length[2]|xss_clean|is_unique[tbl_pages.pages_title]');
            $this->form_validation->set_rules('pages_order', 'Vị trí', 'trim|required|greater_than[-1]|numeric|xss_clean');
            $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
            $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');
            $this->form_validation->set_message('greater_than','<span style="font-weight: bold">%s</span> phải lớn hơn 0');
            $this->form_validation->set_message('numeric','<span style="font-weight: bold">%s</span> chỉ bao gồm số');
            $this->form_validation->set_message('is_unique','<span style="font-weight: bold">%s</span> đã tồn tại');

            if($this->form_validation->run() == FALSE)
            {
                $data['msg'] = '';
            }
            else
            {
                $strInsert = array(
                    'pages_name'    =>  $this->input->post('pages_name', TRUE),
                    'pages_order'   =>  $this->input->post('pages_order', TRUE),
                    'pages_status'  =>  $this->input->post('pages_status', TRUE),
                    'pages_open'    =>  $this->input->post('pages_open', TRUE),
                    'pages_title'   =>  $this->input->post('pages_title', TRUE),
                    'slug'          =>  url_title($this->input->post('pages_title', TRUE))
                );

                $check = $this->MPages->create($strInsert);

                if(!$check)
                {
                    $data['msg'] = 'Lỗi khởi tạo.';
                }
                else
                {
                    $this->native_session->set_flashdata('msg', 'Tạo trang mới thành công');

                    redirect(base_url()."backend/pages");

                    exit();
                }
            }

            $this->_data['content'] = $this->load->view("backend/pages/createpages", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function createpages

        public function editpages()
        {
            $this->_data['title'] = 'Jewel | Sửa trang';

            if(!$this->uri->segment(4) || $this->uri->segment(4)=='')
            {
                $data['msg'] = 'Không tồn tại trang này';
            }
            else
            {
                $page_id = $this->uri->segment(4);

                if($this->native_session->userdata('page_id'))
                {
                    $this->native_session->unset_userdata('page_id');
                }

                $this->native_session->set_userdata('page_id', $page_id);

                $data['page'] = $this->MPages->select(array('pages_id' => $page_id));

                if(!$data['page'])
                {
                    $data['page'] = 'Không tồn tại trang này';
                }
                else
                {

                    /*Validate data*/
                    $this->form_validation->set_rules('pages_name','Tên trang', 'trim|required|min_length[2]|xss_clean|callback_check_pages_name');
                    $this->form_validation->set_rules('pages_title','Tên trang không dấu', 'trim|required|min_length[2]|xss_clean|callback_check_pages_title');
                    $this->form_validation->set_rules('pages_order', 'Vị trí', 'trim|required|greater_than[-1]|numeric|xss_clean');
                    $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
                    $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');
                    $this->form_validation->set_message('greater_than','<span style="font-weight: bold">%s</span> phải lớn hơn 0');
                    $this->form_validation->set_message('numeric','<span style="font-weight: bold">%s</span> chỉ bao gồm số');

                    if($this->form_validation->run()==FALSE)
                    {
                        $data['msg'] = '';
                    }
                    else
                    {
                        $strUpdate = array(
                            'pages_name'    =>  $this->input->post('pages_name', TRUE),
                            'pages_order'   =>  $this->input->post('pages_order', TRUE),
                            'pages_status'  =>  $this->input->post('pages_status', TRUE),
                            'pages_open'    =>  $this->input->post('pages_open', TRUE),
                            'pages_title'   =>  $this->input->post('pages_title', TRUE),
                            'slug'          =>  url_title($this->input->post('pages_title', TRUE))
                        );

                        $check = $this->MPages->edit($page_id, $strUpdate);

                        if(!$check)
                        {
                            $data['msg'] = 'Lỗi update';
                        }
                        else
                        {
                            $this->native_session->set_flashdata('msg', 'Cập nhật trang thành công');

                            redirect(base_url()."backend/pages");
                        }//End else
                    }//End else
                }//End else
            }//End else

            $this->_data['content'] = $this->load->view("backend/pages/editpages", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function

        public function check_pages_name($str)
        {
            $check = $this->MPages->select(array(
                    'pages_name' => $str,
                    'pages_id'   => $this->native_session->userdata('page_id')
                )
            );

            if($check)
            {
                $this->form_validation->set_message('check_pages_name', '<span style="font-weight: bold">%s</span> đã tồn tại');
                return FALSE;
            }
            return TRUE;
        }//End callback function

        public function check_pages_title($str)
        {
            $check = $this->MPages->select(array(
                'pages_title' => $str,
                'pages_id'    => $this->native_session->userdata('page_id')
                )
            );

            if($check)
            {
                $this->form_validation->set_message('check_pages_title', '<span style="font-weight: bold">%s</span> đã tồn tại');
                return FALSE;
            }

            return TRUE;
        }//End callback function

        public function delpages()
        {
            if(!$this->uri->segment(4) || $this->uri->segment(4)=='')
            {
                $data['msg'] = 'Không tồn tại trang này';
            }
            else
            {
                $page_id = $this->uri->segment(4);

                $check = $this->MPages->delete(array('pages_id' => $page_id));

                if(!$check)
                    $this->native_session->set_flashdata('msg', 'Lỗi xoá');
                else
                    $this->native_session->set_flashdata('msg', 'Xoá trang thành công');
            }//End else
            redirect(base_url()."backend/pages");
        }//End function delpages

    }

/* End of file Pages.php */
/* Location: ./backend/controllers/pages.php */